package partTwo;
/*
本类用于测试继承中方法的使用
 */
public class TestExtends3 {
    public static void main(String[] args) {
        //4.创建子类对象进行测试
        son3 s = new son3();
        s.eat(); //子类对象调用父类的方法
        s.play(); //子类对象调用父类的方法
        s.studyjava(); //子类对象调用自己的方法
        father3 f = new father3();
        f.play();
        f.eat();
    }
}

//1.创建父类
class  father3 {
    //3.定义父类中的普通方法
    public void eat(){
        System.out.println("爸爸爱吃肉");
    }
    public void play(){
        System.out.println("爸爸爱放风筝");
    }
}

//2.创建子类并继承父类
class son3 extends father3{
    public void studyjava(){
        System.out.println("别闹，学java呢");
    }
    //6.方法的重写
    /* 子类对父类的方法不满意时，可以重新父类的方法，对其功能做修改
    重写的语法规则：俩同 俩小 一大
    一大：子类方法的修饰符范围 >= 父类方法的修饰符范围--指的是访问控制符
    两同：方法名相同，参数列表相同
    两小: 子类方法的返回值类型 <= 父类方法的返回值类型【这个大小是继承关系，不是值的大小】
    子类方法抛出的异常类型 <= 父类方法抛出的异常类型【这个还没学，不用管】*/
    @Override  //类似于一个标签，用来标记这是一个重新的方法，可以检测继承内容有没有写对
    public void play(){
        System.out.println("我要玩电子游戏");
    }
    @Override
    public  void eat (){
        System.out.println("儿子爱吃蔬菜");
    }
}